<?php
class PesquisaSatisfacao extends AppModel{

	public $useTable = 'tab_pesquisa_satisfacao';

	public function buscaEscopoPorId($id_escopo){
		return $this->find('first', array('conditions' => array('PesquisaSatisfacao.Id' => $id_escopo)));
	}

	public function listaDescricoesPesquisaSatisfacao(){
		return $this->find('list', 
			array('fields' => array('PesquisaSatisfacao.Id', 'PesquisaSatisfacao.descricao'))
		);
	}
	
	public function buscaDescricaoPorId($id){
  		$find = $this->find('first', array('conditions' => array('PesquisaSatisfacao.Id' => $id)));
		return $find['PesquisaSatisfacao']['descricao'];
  	}

  	public function gerarIndicador($data_inicio = null, $data_fim = null){
		$this->hasMany = array(
            'DescricaoPesquisaSatisfacao' => array(
                'className' => 'DescricaoPesquisaSatisfacao',
            )
        );

        if(is_null($data_inicio) || is_null($data_fim)){
            $data_inicio = date('Y-m-01');
            $data_fim = date('Y-m-t');
        }

  		$result = $this->query("
			select
			tdps.id,
			tdps.descricao,
			(
				select count(tps.id) from tab_pesquisa_satisfacao tps
				where tps.id_postura_tecnico = tdps.id
				and tps.data_envio >= '" . $data_inicio . "'
				and tps.data_envio <= '" . $data_fim . "'
			) as 'postura_tecnico',
			(
				select count(tps.id) from tab_pesquisa_satisfacao tps
				where tps.id_prontidao_atendimento = tdps.id
				and tps.data_envio >= '" . $data_inicio . "'
				and tps.data_envio <= '" . $data_fim . "'
			) as 'prontidao_atendimento',
			(
				select count(tps.id) from tab_pesquisa_satisfacao tps
				where tps.id_qualidade_atendimento = tdps.id
				and tps.data_envio >= '" . $data_inicio . "'
				and tps.data_envio <= '" . $data_fim . "'
			) as 'qualidade_atendimento'

			from tab_desc_pesquisa_satisfacao tdps

			
			
        ");

  		$pesquisa = array();
  		foreach($result as $r){
  			$total = $r[0]['postura_tecnico'] + $r[0]['prontidao_atendimento'] + $r[0]['qualidade_atendimento'];
  			$pesquisa[$r['tdps']['id']]['total'] = $total;
  			$pesquisa[$r['tdps']['id']]['descricao'] = $r['tdps']['descricao'];

  		}

        return $pesquisa;

  	}

  	public function observacoesPesquisaSatisfacao($data_inicio = null, $data_fim = null){
	    if(is_null($data_inicio) || is_null($data_fim)){
	        $data_inicio = date('Y-m-01');
	        $data_fim = date('Y-m-t');

	    }
	    //$data_inicio = '2010-04-02';
	    //$data_fim = '2026-04-29';

		return $this->find(
		"all",
			array(
				'conditions' => array(
					'PesquisaSatisfacao.data_envio >=' => $data_inicio, 
					'PesquisaSatisfacao.data_envio <=' => $data_fim
				),
				'order' => array('PesquisaSatisfacao.data_envio desc')
			)
		);
  	}

}


?>